<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="language" content="en" />
<link rel="stylesheet" type="text/css" href="css/style.css" />
<link rel="stylesheet" type="text/css" href="css/api.css" />
<script type="text/javascript" src="js/jquery.js"></script>
<title>CTimestampBehavior</title>
</head>

<body>
<div id="apiPage">

<div id="apiHeader">
<a href="http://www.yiiframework.com">Yii Framework</a> v1.1.17 Class Reference
</div><!-- end of header -->

<div id="content">
<h1>CTimestampBehavior</h1>
<div id="nav">
<a href="index.html">All Packages</a>
| <a href="#properties">Properties</a>
| <a href="#methods">Methods</a>
</div>

<table class="summaryTable docClass">
<colgroup>
	<col class="col-name" />
	<col class="col-value" />
</colgroup>
<tr>
  <th>Package</th>
  <td><a href="index.html#zii.behaviors">zii.behaviors</a></td>
</tr>
<tr>
  <th>Inheritance</th>
  <td>class CTimestampBehavior &raquo;
<a href="CActiveRecordBehavior.html">CActiveRecordBehavior</a> &raquo;
<a href="CModelBehavior.html">CModelBehavior</a> &raquo;
<a href="CBehavior.html">CBehavior</a> &raquo;
<a href="CComponent.html">CComponent</a></td>
</tr>
<tr>
  <th>Implements</th>
  <td><a href="IBehavior.html">IBehavior</a></td>
</tr>
<tr>
  <th>Since</th>
  <td>1.1</td>
</tr>
<tr>
  <th>Source Code</th>
  <td><a class="sourceLink" href="https://github.com/yiisoft/yii/blob/1.1.17/framework/zii/behaviors/CTimestampBehavior.php">framework/zii/behaviors/CTimestampBehavior.php</a></td>
</tr>
</table>

<div id="classDescription">
CTimestampBehavior will automatically fill date and time related attributes.
<br/><br/>
CTimestampBehavior will automatically fill date and time related attributes when the active record
is created and/or updated.
You may specify an active record model to use this behavior like so:
<pre>
public function behaviors(){
	return array(
		'CTimestampBehavior' =&gt; array(
			'class' =&gt; 'zii.behaviors.CTimestampBehavior',
			'createAttribute' =&gt; 'create_time_attribute',
			'updateAttribute' =&gt; 'update_time_attribute',
		)
	);
}
</pre>
The <a href="CTimestampBehavior.html#createAttribute">createAttribute</a> and <a href="CTimestampBehavior.html#updateAttribute">updateAttribute</a> options actually default to 'create_time' and 'update_time'
respectively, so it is not required that you configure them. If you do not wish CTimestampBehavior
to set a timestamp for record update or creation, set the corresponding attribute option to null.
<br/><br/>
By default, the update attribute is only set on record update. If you also wish it to be set on record creation,
set the <a href="CTimestampBehavior.html#setUpdateOnCreate">setUpdateOnCreate</a> option to true.
<br/><br/>
Although CTimestampBehavior attempts to figure out on it's own what value to inject into the timestamp attribute,
you may specify a custom value to use instead via <a href="CTimestampBehavior.html#timestampExpression">timestampExpression</a></div>
<a name="properties"></a>

<div class="summary docProperty">
<h2>Public Properties</h2>

<p><a href="#" class="toggle">Hide inherited properties</a></p>

<table class="summaryTable">
<colgroup>
	<col class="col-property" />
	<col class="col-type" />
	<col class="col-description" />
	<col class="col-defined" />
</colgroup>
<tr>
  <th>Property</th><th>Type</th><th>Description</th><th>Defined By</th>
</tr>
<tr id="createAttribute">
  <td><a href="CTimestampBehavior.html#createAttribute-detail">createAttribute</a></td>
  <td>mixed</td>
  <td>The name of the attribute to store the creation time.</td>
  <td>CTimestampBehavior</td>
</tr>
<tr class="inherited" id="enabled">
  <td><a href="CBehavior.html#enabled-detail">enabled</a></td>
  <td>boolean</td>
  <td>whether this behavior is enabled</td>
  <td><a href="CBehavior.html">CBehavior</a></td>
</tr>
<tr class="inherited" id="owner">
  <td><a href="CBehavior.html#owner-detail">owner</a></td>
  <td><a href="CComponent.html">CComponent</a></td>
  <td>the owner component that this behavior is attached to.</td>
  <td><a href="CBehavior.html">CBehavior</a></td>
</tr>
<tr id="setUpdateOnCreate">
  <td><a href="CTimestampBehavior.html#setUpdateOnCreate-detail">setUpdateOnCreate</a></td>
  <td>bool</td>
  <td>Whether to set the update attribute to the creation timestamp upon creation.</td>
  <td>CTimestampBehavior</td>
</tr>
<tr id="timestampExpression">
  <td><a href="CTimestampBehavior.html#timestampExpression-detail">timestampExpression</a></td>
  <td>mixed</td>
  <td>The expression that will be used for generating the timestamp.</td>
  <td>CTimestampBehavior</td>
</tr>
<tr id="updateAttribute">
  <td><a href="CTimestampBehavior.html#updateAttribute-detail">updateAttribute</a></td>
  <td>mixed</td>
  <td>The name of the attribute to store the modification time.</td>
  <td>CTimestampBehavior</td>
</tr>
</table>
</div>
<div class="summary docProperty">
<h2>Protected Properties</h2>

<p><a href="#" class="toggle">Hide inherited properties</a></p>

<table class="summaryTable">
<colgroup>
	<col class="col-property" />
	<col class="col-type" />
	<col class="col-description" />
	<col class="col-defined" />
</colgroup>
<tr>
  <th>Property</th><th>Type</th><th>Description</th><th>Defined By</th>
</tr>
<tr id="map">
  <td><a href="CTimestampBehavior.html#map-detail">map</a></td>
  <td>array</td>
  <td>Maps column types to database method</td>
  <td>CTimestampBehavior</td>
</tr>
</table>
</div>
<a name="methods"></a>

<div class="summary docMethod">
<h2>Public Methods</h2>

<p><a href="#" class="toggle">Hide inherited methods</a></p>

<table class="summaryTable">
<colgroup>
	<col class="col-method" />
	<col class="col-description" />
	<col class="col-defined" />
</colgroup>
<tr>
  <th>Method</th><th>Description</th><th>Defined By</th>
</tr>
<tr class="inherited" id="__call">
  <td><a href="CComponent.html#__call-detail">__call()</a></td>
  <td>Calls the named method which is not a class method.</td>
  <td><a href="CComponent.html">CComponent</a></td>
</tr>
<tr class="inherited" id="__get">
  <td><a href="CComponent.html#__get-detail">__get()</a></td>
  <td>Returns a property value, an event handler list or a behavior based on its name.</td>
  <td><a href="CComponent.html">CComponent</a></td>
</tr>
<tr class="inherited" id="__isset">
  <td><a href="CComponent.html#__isset-detail">__isset()</a></td>
  <td>Checks if a property value is null.</td>
  <td><a href="CComponent.html">CComponent</a></td>
</tr>
<tr class="inherited" id="__set">
  <td><a href="CComponent.html#__set-detail">__set()</a></td>
  <td>Sets value of a component property.</td>
  <td><a href="CComponent.html">CComponent</a></td>
</tr>
<tr class="inherited" id="__unset">
  <td><a href="CComponent.html#__unset-detail">__unset()</a></td>
  <td>Sets a component property to be null.</td>
  <td><a href="CComponent.html">CComponent</a></td>
</tr>
<tr class="inherited" id="asa">
  <td><a href="CComponent.html#asa-detail">asa()</a></td>
  <td>Returns the named behavior object.</td>
  <td><a href="CComponent.html">CComponent</a></td>
</tr>
<tr class="inherited" id="attach">
  <td><a href="CBehavior.html#attach-detail">attach()</a></td>
  <td>Attaches the behavior object to the component.</td>
  <td><a href="CBehavior.html">CBehavior</a></td>
</tr>
<tr class="inherited" id="attachBehavior">
  <td><a href="CComponent.html#attachBehavior-detail">attachBehavior()</a></td>
  <td>Attaches a behavior to this component.</td>
  <td><a href="CComponent.html">CComponent</a></td>
</tr>
<tr class="inherited" id="attachBehaviors">
  <td><a href="CComponent.html#attachBehaviors-detail">attachBehaviors()</a></td>
  <td>Attaches a list of behaviors to the component.</td>
  <td><a href="CComponent.html">CComponent</a></td>
</tr>
<tr class="inherited" id="attachEventHandler">
  <td><a href="CComponent.html#attachEventHandler-detail">attachEventHandler()</a></td>
  <td>Attaches an event handler to an event.</td>
  <td><a href="CComponent.html">CComponent</a></td>
</tr>
<tr id="beforeSave">
  <td><a href="CTimestampBehavior.html#beforeSave-detail">beforeSave()</a></td>
  <td>Responds to CModel::onBeforeSave event.</td>
  <td>CTimestampBehavior</td>
</tr>
<tr class="inherited" id="canGetProperty">
  <td><a href="CComponent.html#canGetProperty-detail">canGetProperty()</a></td>
  <td>Determines whether a property can be read.</td>
  <td><a href="CComponent.html">CComponent</a></td>
</tr>
<tr class="inherited" id="canSetProperty">
  <td><a href="CComponent.html#canSetProperty-detail">canSetProperty()</a></td>
  <td>Determines whether a property can be set.</td>
  <td><a href="CComponent.html">CComponent</a></td>
</tr>
<tr class="inherited" id="detach">
  <td><a href="CBehavior.html#detach-detail">detach()</a></td>
  <td>Detaches the behavior object from the component.</td>
  <td><a href="CBehavior.html">CBehavior</a></td>
</tr>
<tr class="inherited" id="detachBehavior">
  <td><a href="CComponent.html#detachBehavior-detail">detachBehavior()</a></td>
  <td>Detaches a behavior from the component.</td>
  <td><a href="CComponent.html">CComponent</a></td>
</tr>
<tr class="inherited" id="detachBehaviors">
  <td><a href="CComponent.html#detachBehaviors-detail">detachBehaviors()</a></td>
  <td>Detaches all behaviors from the component.</td>
  <td><a href="CComponent.html">CComponent</a></td>
</tr>
<tr class="inherited" id="detachEventHandler">
  <td><a href="CComponent.html#detachEventHandler-detail">detachEventHandler()</a></td>
  <td>Detaches an existing event handler.</td>
  <td><a href="CComponent.html">CComponent</a></td>
</tr>
<tr class="inherited" id="disableBehavior">
  <td><a href="CComponent.html#disableBehavior-detail">disableBehavior()</a></td>
  <td>Disables an attached behavior.</td>
  <td><a href="CComponent.html">CComponent</a></td>
</tr>
<tr class="inherited" id="disableBehaviors">
  <td><a href="CComponent.html#disableBehaviors-detail">disableBehaviors()</a></td>
  <td>Disables all behaviors attached to this component.</td>
  <td><a href="CComponent.html">CComponent</a></td>
</tr>
<tr class="inherited" id="enableBehavior">
  <td><a href="CComponent.html#enableBehavior-detail">enableBehavior()</a></td>
  <td>Enables an attached behavior.</td>
  <td><a href="CComponent.html">CComponent</a></td>
</tr>
<tr class="inherited" id="enableBehaviors">
  <td><a href="CComponent.html#enableBehaviors-detail">enableBehaviors()</a></td>
  <td>Enables all behaviors attached to this component.</td>
  <td><a href="CComponent.html">CComponent</a></td>
</tr>
<tr class="inherited" id="evaluateExpression">
  <td><a href="CComponent.html#evaluateExpression-detail">evaluateExpression()</a></td>
  <td>Evaluates a PHP expression or callback under the context of this component.</td>
  <td><a href="CComponent.html">CComponent</a></td>
</tr>
<tr class="inherited" id="events">
  <td><a href="CActiveRecordBehavior.html#events-detail">events()</a></td>
  <td>Declares events and the corresponding event handler methods.</td>
  <td><a href="CActiveRecordBehavior.html">CActiveRecordBehavior</a></td>
</tr>
<tr class="inherited" id="getEnabled">
  <td><a href="CBehavior.html#getEnabled-detail">getEnabled()</a></td>
  <td>Returns whether this behavior is enabled</td>
  <td><a href="CBehavior.html">CBehavior</a></td>
</tr>
<tr class="inherited" id="getEventHandlers">
  <td><a href="CComponent.html#getEventHandlers-detail">getEventHandlers()</a></td>
  <td>Returns the list of attached event handlers for an event.</td>
  <td><a href="CComponent.html">CComponent</a></td>
</tr>
<tr class="inherited" id="getOwner">
  <td><a href="CBehavior.html#getOwner-detail">getOwner()</a></td>
  <td>Returns the owner component that this behavior is attached to.</td>
  <td><a href="CBehavior.html">CBehavior</a></td>
</tr>
<tr class="inherited" id="hasEvent">
  <td><a href="CComponent.html#hasEvent-detail">hasEvent()</a></td>
  <td>Determines whether an event is defined.</td>
  <td><a href="CComponent.html">CComponent</a></td>
</tr>
<tr class="inherited" id="hasEventHandler">
  <td><a href="CComponent.html#hasEventHandler-detail">hasEventHandler()</a></td>
  <td>Checks whether the named event has attached handlers.</td>
  <td><a href="CComponent.html">CComponent</a></td>
</tr>
<tr class="inherited" id="hasProperty">
  <td><a href="CComponent.html#hasProperty-detail">hasProperty()</a></td>
  <td>Determines whether a property is defined.</td>
  <td><a href="CComponent.html">CComponent</a></td>
</tr>
<tr class="inherited" id="raiseEvent">
  <td><a href="CComponent.html#raiseEvent-detail">raiseEvent()</a></td>
  <td>Raises an event.</td>
  <td><a href="CComponent.html">CComponent</a></td>
</tr>
<tr class="inherited" id="setEnabled">
  <td><a href="CBehavior.html#setEnabled-detail">setEnabled()</a></td>
  <td>Sets whether this behavior is enabled</td>
  <td><a href="CBehavior.html">CBehavior</a></td>
</tr>
</table>
</div>
<div class="summary docMethod">
<h2>Protected Methods</h2>

<p><a href="#" class="toggle">Hide inherited methods</a></p>

<table class="summaryTable">
<colgroup>
	<col class="col-method" />
	<col class="col-description" />
	<col class="col-defined" />
</colgroup>
<tr>
  <th>Method</th><th>Description</th><th>Defined By</th>
</tr>
<tr class="inherited" id="afterConstruct">
  <td><a href="CModelBehavior.html#afterConstruct-detail">afterConstruct()</a></td>
  <td>Responds to <a href="CModel.html#onAfterConstruct">CModel::onAfterConstruct</a> event.</td>
  <td><a href="CModelBehavior.html">CModelBehavior</a></td>
</tr>
<tr class="inherited" id="afterDelete">
  <td><a href="CActiveRecordBehavior.html#afterDelete-detail">afterDelete()</a></td>
  <td>Responds to <a href="CActiveRecord.html#onAfterDelete">CActiveRecord::onAfterDelete</a> event.</td>
  <td><a href="CActiveRecordBehavior.html">CActiveRecordBehavior</a></td>
</tr>
<tr class="inherited" id="afterFind">
  <td><a href="CActiveRecordBehavior.html#afterFind-detail">afterFind()</a></td>
  <td>Responds to <a href="CActiveRecord.html#onAfterFind">CActiveRecord::onAfterFind</a> event.</td>
  <td><a href="CActiveRecordBehavior.html">CActiveRecordBehavior</a></td>
</tr>
<tr class="inherited" id="afterSave">
  <td><a href="CActiveRecordBehavior.html#afterSave-detail">afterSave()</a></td>
  <td>Responds to <a href="CActiveRecord.html#onAfterSave">CActiveRecord::onAfterSave</a> event.</td>
  <td><a href="CActiveRecordBehavior.html">CActiveRecordBehavior</a></td>
</tr>
<tr class="inherited" id="afterValidate">
  <td><a href="CModelBehavior.html#afterValidate-detail">afterValidate()</a></td>
  <td>Responds to <a href="CModel.html#onAfterValidate">CModel::onAfterValidate</a> event.</td>
  <td><a href="CModelBehavior.html">CModelBehavior</a></td>
</tr>
<tr class="inherited" id="beforeCount">
  <td><a href="CActiveRecordBehavior.html#beforeCount-detail">beforeCount()</a></td>
  <td>Responds to <a href="CActiveRecord.html#onBeforeCount">CActiveRecord::onBeforeCount</a> event.</td>
  <td><a href="CActiveRecordBehavior.html">CActiveRecordBehavior</a></td>
</tr>
<tr class="inherited" id="beforeDelete">
  <td><a href="CActiveRecordBehavior.html#beforeDelete-detail">beforeDelete()</a></td>
  <td>Responds to <a href="CActiveRecord.html#onBeforeDelete">CActiveRecord::onBeforeDelete</a> event.</td>
  <td><a href="CActiveRecordBehavior.html">CActiveRecordBehavior</a></td>
</tr>
<tr class="inherited" id="beforeFind">
  <td><a href="CActiveRecordBehavior.html#beforeFind-detail">beforeFind()</a></td>
  <td>Responds to <a href="CActiveRecord.html#onBeforeFind">CActiveRecord::onBeforeFind</a> event.</td>
  <td><a href="CActiveRecordBehavior.html">CActiveRecordBehavior</a></td>
</tr>
<tr class="inherited" id="beforeValidate">
  <td><a href="CModelBehavior.html#beforeValidate-detail">beforeValidate()</a></td>
  <td>Responds to <a href="CModel.html#onBeforeValidate">CModel::onBeforeValidate</a> event.</td>
  <td><a href="CModelBehavior.html">CModelBehavior</a></td>
</tr>
<tr id="getTimestampByAttribute">
  <td><a href="CTimestampBehavior.html#getTimestampByAttribute-detail">getTimestampByAttribute()</a></td>
  <td>Gets the appropriate timestamp depending on the column type $attribute is</td>
  <td>CTimestampBehavior</td>
</tr>
<tr id="getTimestampByColumnType">
  <td><a href="CTimestampBehavior.html#getTimestampByColumnType-detail">getTimestampByColumnType()</a></td>
  <td>Returns the appropriate timestamp depending on $columnType</td>
  <td>CTimestampBehavior</td>
</tr>
</table>
</div>
<a name="events"></a>

<h2>Property Details</h2>
<div class="detailHeader" id="createAttribute-detail">
createAttribute<span class="detailHeaderTag">
property
</span>
</div>

<div class="signature">
public mixed <b>$createAttribute</b>;</div>

<p>The name of the attribute to store the creation time.  Set to null to not
use a timestamp for the creation attribute.  Defaults to 'create_time'</p>


<div class="detailHeader" id="map-detail">
map<span class="detailHeaderTag">
property
</span>
</div>

<div class="signature">
protected static array <b>$map</b>;</div>

<p>Maps column types to database method</p>


<div class="detailHeader" id="setUpdateOnCreate-detail">
setUpdateOnCreate<span class="detailHeaderTag">
property
</span>
</div>

<div class="signature">
public bool <b>$setUpdateOnCreate</b>;</div>

<p>Whether to set the update attribute to the creation timestamp upon creation.
Otherwise it will be left alone.  Defaults to false.</p>


<div class="detailHeader" id="timestampExpression-detail">
timestampExpression<span class="detailHeaderTag">
property
</span>
</div>

<div class="signature">
public mixed <b>$timestampExpression</b>;</div>

<p>The expression that will be used for generating the timestamp.
This can be either a string representing a PHP expression (e.g. 'time()'),
or a <a href="CDbExpression.html">CDbExpression</a> object representing a DB expression (e.g. new CDbExpression('NOW()')).
Defaults to null, meaning that we will attempt to figure out the appropriate timestamp
automatically. If we fail at finding the appropriate timestamp, then it will
fall back to using the current UNIX timestamp.
<br/><br/>
A PHP expression can be any PHP code that has a value. To learn more about what an expression is,
please refer to the <a href="http://www.php.net/manual/en/language.expressions.php">php manual</a>.</p>


<div class="detailHeader" id="updateAttribute-detail">
updateAttribute<span class="detailHeaderTag">
property
</span>
</div>

<div class="signature">
public mixed <b>$updateAttribute</b>;</div>

<p>The name of the attribute to store the modification time.  Set to null to not
use a timestamp for the update attribute.  Defaults to 'update_time'</p>


<h2>Method Details</h2>

<div class="detailHeader" id="beforeSave-detail">
beforeSave()
<span class="detailHeaderTag">
method
</span>
</div>

<table class="summaryTable">
<tr><td colspan="3">
<div class="signature2">
public void <b>beforeSave</b>(<a href="CModelEvent.html">CModelEvent</a> $event)</div>
</td></tr>
<tr>
  <td class="paramNameCol">$event</td>
  <td class="paramTypeCol"><a href="CModelEvent.html">CModelEvent</a></td>
  <td class="paramDescCol">event parameter</td>
</tr>
</table>

<div class="sourceCode">
<b>Source Code:</b> <a class="sourceLink" href="https://github.com/yiisoft/yii/blob/1.1.17/framework/zii/behaviors/CTimestampBehavior.php#L89">framework/zii/behaviors/CTimestampBehavior.php#89</a> (<b><a href="#" class="show">show</a></b>)
<div class="code"><code><span style="color: #000000">
<span style="color: #0000BB"></span><span style="color: #007700">public&nbsp;function&nbsp;</span><span style="color: #0000BB">beforeSave</span><span style="color: #007700">(</span><span style="color: #0000BB">$event</span><span style="color: #007700">)&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(</span><span style="color: #0000BB">$this</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">getOwner</span><span style="color: #007700">()-&gt;</span><span style="color: #0000BB">getIsNewRecord</span><span style="color: #007700">()&nbsp;&amp;&amp;&nbsp;(</span><span style="color: #0000BB">$this</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">createAttribute&nbsp;</span><span style="color: #007700">!==&nbsp;</span><span style="color: #0000BB">null</span><span style="color: #007700">))&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">$this</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">getOwner</span><span style="color: #007700">()-&gt;{</span><span style="color: #0000BB">$this</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">createAttribute</span><span style="color: #007700">}&nbsp;=&nbsp;</span><span style="color: #0000BB">$this</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">getTimestampByAttribute</span><span style="color: #007700">(</span><span style="color: #0000BB">$this</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">createAttribute</span><span style="color: #007700">);<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;((!</span><span style="color: #0000BB">$this</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">getOwner</span><span style="color: #007700">()-&gt;</span><span style="color: #0000BB">getIsNewRecord</span><span style="color: #007700">()&nbsp;||&nbsp;</span><span style="color: #0000BB">$this</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">setUpdateOnCreate</span><span style="color: #007700">)&nbsp;&amp;&amp;&nbsp;(</span><span style="color: #0000BB">$this</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">updateAttribute&nbsp;</span><span style="color: #007700">!==&nbsp;</span><span style="color: #0000BB">null</span><span style="color: #007700">))&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">$this</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">getOwner</span><span style="color: #007700">()-&gt;{</span><span style="color: #0000BB">$this</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">updateAttribute</span><span style="color: #007700">}&nbsp;=&nbsp;</span><span style="color: #0000BB">$this</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">getTimestampByAttribute</span><span style="color: #007700">(</span><span style="color: #0000BB">$this</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">updateAttribute</span><span style="color: #007700">);<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br />}</span>
</span>
</code></div>
</div>
<p>Responds to CModel::onBeforeSave event.
Sets the values of the creation or modified attributes as configured</p>


<div class="detailHeader" id="getTimestampByAttribute-detail">
getTimestampByAttribute()
<span class="detailHeaderTag">
method
</span>
</div>

<table class="summaryTable">
<tr><td colspan="3">
<div class="signature2">
protected mixed <b>getTimestampByAttribute</b>(string $attribute)</div>
</td></tr>
<tr>
  <td class="paramNameCol">$attribute</td>
  <td class="paramTypeCol">string</td>
  <td class="paramDescCol">$attribute</td>
</tr>
<tr>
  <td class="paramNameCol">{return}</td>
  <td class="paramTypeCol">mixed</td>
  <td class="paramDescCol">timestamp (eg unix timestamp or a mysql function)</td>
</tr>
</table>

<div class="sourceCode">
<b>Source Code:</b> <a class="sourceLink" href="https://github.com/yiisoft/yii/blob/1.1.17/framework/zii/behaviors/CTimestampBehavior.php#L104">framework/zii/behaviors/CTimestampBehavior.php#104</a> (<b><a href="#" class="show">show</a></b>)
<div class="code"><code><span style="color: #000000">
<span style="color: #0000BB"></span><span style="color: #007700">protected&nbsp;function&nbsp;</span><span style="color: #0000BB">getTimestampByAttribute</span><span style="color: #007700">(</span><span style="color: #0000BB">$attribute</span><span style="color: #007700">)&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(</span><span style="color: #0000BB">$this</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">timestampExpression&nbsp;</span><span style="color: #007700">instanceof&nbsp;</span><span style="color: #0000BB">CDbExpression</span><span style="color: #007700">)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;</span><span style="color: #0000BB">$this</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">timestampExpression</span><span style="color: #007700">;<br />&nbsp;&nbsp;&nbsp;&nbsp;elseif&nbsp;(</span><span style="color: #0000BB">$this</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">timestampExpression&nbsp;</span><span style="color: #007700">!==&nbsp;</span><span style="color: #0000BB">null</span><span style="color: #007700">)<br />&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;try<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;@eval(</span><span style="color: #DD0000">'return&nbsp;'</span><span style="color: #007700">.</span><span style="color: #0000BB">$this</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">timestampExpression</span><span style="color: #007700">.</span><span style="color: #DD0000">';'</span><span style="color: #007700">);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;catch&nbsp;(</span><span style="color: #0000BB">ParseError&nbsp;$e</span><span style="color: #007700">)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;</span><span style="color: #0000BB">false</span><span style="color: #007700">;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">$columnType&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #0000BB">$this</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">getOwner</span><span style="color: #007700">()-&gt;</span><span style="color: #0000BB">getTableSchema</span><span style="color: #007700">()-&gt;</span><span style="color: #0000BB">getColumn</span><span style="color: #007700">(</span><span style="color: #0000BB">$attribute</span><span style="color: #007700">)-&gt;</span><span style="color: #0000BB">dbType</span><span style="color: #007700">;<br />&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;</span><span style="color: #0000BB">$this</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">getTimestampByColumnType</span><span style="color: #007700">(</span><span style="color: #0000BB">$columnType</span><span style="color: #007700">);<br />}</span>
</span>
</code></div>
</div>
<p>Gets the appropriate timestamp depending on the column type $attribute is</p>


<div class="detailHeader" id="getTimestampByColumnType-detail">
getTimestampByColumnType()
<span class="detailHeaderTag">
method
</span>
</div>

<table class="summaryTable">
<tr><td colspan="3">
<div class="signature2">
protected mixed <b>getTimestampByColumnType</b>(string $columnType)</div>
</td></tr>
<tr>
  <td class="paramNameCol">$columnType</td>
  <td class="paramTypeCol">string</td>
  <td class="paramDescCol">$columnType</td>
</tr>
<tr>
  <td class="paramNameCol">{return}</td>
  <td class="paramTypeCol">mixed</td>
  <td class="paramDescCol">timestamp (eg unix timestamp or a mysql function)</td>
</tr>
</table>

<div class="sourceCode">
<b>Source Code:</b> <a class="sourceLink" href="https://github.com/yiisoft/yii/blob/1.1.17/framework/zii/behaviors/CTimestampBehavior.php#L129">framework/zii/behaviors/CTimestampBehavior.php#129</a> (<b><a href="#" class="show">show</a></b>)
<div class="code"><code><span style="color: #000000">
<span style="color: #0000BB"></span><span style="color: #007700">protected&nbsp;function&nbsp;</span><span style="color: #0000BB">getTimestampByColumnType</span><span style="color: #007700">(</span><span style="color: #0000BB">$columnType</span><span style="color: #007700">)&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;isset(</span><span style="color: #0000BB">self</span><span style="color: #007700">::</span><span style="color: #0000BB">$map</span><span style="color: #007700">[</span><span style="color: #0000BB">$columnType</span><span style="color: #007700">])&nbsp;?&nbsp;new&nbsp;</span><span style="color: #0000BB">CDbExpression</span><span style="color: #007700">(</span><span style="color: #0000BB">self</span><span style="color: #007700">::</span><span style="color: #0000BB">$map</span><span style="color: #007700">[</span><span style="color: #0000BB">$columnType</span><span style="color: #007700">])&nbsp;:&nbsp;</span><span style="color: #0000BB">time</span><span style="color: #007700">();<br />}</span>
</span>
</code></div>
</div>
<p>Returns the appropriate timestamp depending on $columnType</p>


</div><!-- end of content -->

<div id="apiFooter">
&copy; 2008-2013 by <a href="http://www.yiisoft.com">Yii Software LLC</a><br/>
All Rights Reserved.<br/>
</div><!-- end of footer -->

<script type="text/javascript">
/*<![CDATA[*/
$("a.toggle").toggle(function(){
	$(this).text($(this).text().replace(/Hide/,'Show'));
	$(this).parents(".summary").find(".inherited").hide();
},function(){
	$(this).text($(this).text().replace(/Show/,'Hide'));
	$(this).parents(".summary").find(".inherited").show();
});
$(".sourceCode a.show").toggle(function(){
	$(this).text($(this).text().replace(/show/,'hide'));
	$(this).parents(".sourceCode").find("div.code").show();
},function(){
	$(this).text($(this).text().replace(/hide/,'show'));
	$(this).parents(".sourceCode").find("div.code").hide();
});
$("a.sourceLink").click(function(){
	$(this).attr('target','_blank');
});
/*]]>*/
</script>

</div><!-- end of page -->
</body>
</html>